﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

#endregion

namespace Sebarf.Security.Interfaces {
	/// <summary>
	/// Is responsible for authenticating things
	/// </summary>
	public interface IAuthenticationManagementService {
		#region Public Methods

		/// <summary>
		/// authenticates an thing (for example an user) with the given authentication arguments
		/// </summary>
		/// <param name="id"></param>
		/// <param name="args"></param>
		/// <returns></returns>
		bool Authenticate(DoAuthenticationRequest request);

		/// <summary>
		/// returns if the thing is authenticated
		/// </summary>
		/// <returns></returns>
		bool IsAuthenticated();

		/// <summary>
		/// gets the authenticated thing
		/// </summary>
		/// <returns></returns>
		IIdentitity GetIdentity();

		#endregion
	}
}